﻿namespace While循环
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // while(表达式为真) 执行业务逻辑;
            // 1. 表达式为false，则while内逻辑就不会执行
            // 2. break
            // 3. continue

            //Task.Run(() =>
            //{
            //    while (true)
            //    {
            //        Console.WriteLine("界面线程");
            //        Task.Delay(1000).Wait();
            //    }
            //});

            //Task.Run(() =>
            //{
            //    while (true)
            //    {
            //        Console.WriteLine("Plc线程");
            //        Task.Delay(1000).Wait();
            //    }
            //});


            while (true)
            {
                //if (i++ < 10)
                //{
                //    Console.WriteLine(i);
                //    continue;
                //}

                for (int i = 0; i < 10; i++)
                {
                    if (i < 5) continue;
                    Console.WriteLine(i);
                    //break;
                }
                break;
            }

            // do 执行业务逻辑, while(判断表达式是否为真，为真继续执行，否则退出)
            // 至少执行一次循环
            do
            {
                Console.WriteLine("do while 循环");
                break;
            } while (true);

            // 思考: 如果设备通讯失败，则继续连接设备
            //          1. 如果成功，则退出循环
            //          2. 最多连接十次后退出
            //          3. 第3次手动赋值成功
            int count = 0;
            bool isConnected = false;

            int j = 0;
            //++j;
            while (j++ < 10)
            {

                if (isConnected) break;

                Console.WriteLine("开始连接设备...");
                // PLC连接
                count++;

                if (count > 10) break;
                if (count == 3)
                {
                    isConnected = true;
                }


                //if (!isConnected)
                //{
                //    Console.WriteLine("开始连接设备...");
                //    // PLC连接
                //    count++;

                //    if (count > 10) break;
                //    if (count == 3)
                //    {
                //        isConnected = true;
                //    }
                //}
                //else
                //{
                //    break;
                //}
                // 如果减少if判断，是代码看起来更加的优雅?
            }

            Console.ReadLine();
        }
    }
}
